﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Mads.CoreDomain;

namespace Mads.Administrator
{
  public partial class AddStationToRouteGUI : Form
  {

    public Dictionary<TimeSpan, Station> departure = new Dictionary<TimeSpan, Station>();
    public Dictionary<Station, TimeSpan> waitMinutes = new Dictionary<Station, TimeSpan>();
    private Station[] stations;
    private int counter;

    public AddStationToRouteGUI(Station[] stations)
    {
      InitializeComponent();
      this.stations = stations;
      counter = 0;
      StationNameTextBox.Text = stations[counter].Name;
    }

    private void ContinueButton_Click(object sender, EventArgs e)
    {
      TimeSpan departureTime;
      TimeSpan waitMinutesTime;
      if (ContinueButton.Text == "Следующая станция")
      {
        if (TimeSpan.TryParse(departureTimeTextBox.Text, out departureTime) &&
          TimeSpan.TryParse(waitTimeTextBox.Text, out  waitMinutesTime))
        {
          //добавляем данные в дикшинари
          departure.Add(departureTime, stations[counter]);
          waitMinutes.Add(stations[counter], waitMinutesTime);
          //организуем новую станцию
          counter++;
          StationNameTextBox.Text = stations[counter].Name;
          if (counter == stations.Length-1)
          {
            ContinueButton.Text = "Подтвердить";
          }
        }
        else
        {
          MessageBox.Show("Неверные данные для времени у станции", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
      }
      else
      {
        if (TimeSpan.TryParse(departureTimeTextBox.Text, out departureTime) &&
          TimeSpan.TryParse(waitTimeTextBox.Text, out  waitMinutesTime))
        {
          //добавляем данные в дикшинари
          departure.Add(departureTime, stations[counter]);
          waitMinutes.Add(stations[counter], waitMinutesTime);
          //заканчиваем настройку
          this.DialogResult = DialogResult.OK;
        }
        else
        {
          MessageBox.Show("Неверные данные для времени у станции", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
      }
    }
  }
}
